# Расписание на весну 2020

## Запланированные

- вт 25 фев - Структуры или записи (struct, record)
- вт 25 фев - Объектно-ориентированное программирование
- чт 27 фев - Введение в SQL/DDL: CREATE, ALTER, DROP, ключи, индексы
- чт 27 фев - PostgreSQL: установка, настройка, консоль
- вт 03 мар - ООП: абстракция, инкапсуляция, наследование, полиморфизм
- чт 05 мар - SQL: SELECT (продолжение), функции, алиасы, limit, with, into
- чт 05 мар - SQL: ERD, IDEF1x
- вт 17 мар - ООП: принципы GRASP
- чт 19 мар - SQL: INSERT, DELETE
- вт 24 мар - ООП: принципы SOLID: SRP (принцип единственной ответственности)
- вт 24 мар - ООП: принципы SOLID: OCP (Open Closed Principle)
- чт 26 мар - SQL: JOINS
- вт 31 мар - ООП: принципы SOLID: ISP (Interface Segregation Principle)
- вт 31 мар - ООП: принципы SOLID: DIP (Dependency Inversion Principle)

## Очередь

- Списки: односвязные, двусвязные, циклические, развернутые
- Стек, очередь, дэк, графые структуры
- Наборы данных в памяти
- Автоматное программирование: конечные автоматы (машины состояний)
- Работа с файлами
- Оценка сложности алгоритмов
- Неизменяемые структуры данных (immutable)
- Абстракция и инкапсуляция в ООП
- Сокрытие в ООП и особенности на JavaScript
- Интерфейсы и наследование в ООП
- Полиморфизм в ООП
- Порождающие, структурные и поведенческие шаблоны
- Шаблон: Цепочка обязанностей
- Шаблон: Прокси
- Шаблон: Абстрактная фабрика
- Шаблон: Фабричный метод
- Шаблон: Состояние
- Шаблон: Строитель
- Шаблон: Мост
- Шаблон: Посетитель
- Логирование в Node.js приложениях
- Конфигурирование приложений на Node.js
- Схемы для API, структур данных и баз данных
- Контрактное программирование
- Протекающие абстракции (Leaky abstractions)
- Node.js для IoT (Internet of Things)
- Отправка Email из Node.js, GeoIP в Node.js
- Обзор Web API (Часть 2)
- Антипаттерны функционального программирования
- Immutable - неизменяемые структуры данных
- Lock-free структуры данных
- CRDT - Conflict-free data types
- Динамическое программирование
- CAP-теорема
- Конечные автоматы (Машины состояний)
- Состояние гонки и взаимные блокировки в асинхронном программировании
- Состояние гонки и взаимные блокировки в параллельном программировании
- Обзорная лекция: Парсинг, компиляция и интерпретация кода
- Семинар: Как устроен ИТ-бизнес
- Семинар: Как получить первый практический опыт
- Семинар: Какие бы языки и технологии еще освоить
